package cn.yz.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 账单表(AccountBill)接收类
 *
 * @author yangzhen
 * @since 2025-07-14 14:59:11
 */

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AccountBillVo extends BaseVo {
    /**
     * 字段名：id
     * 注释：账单ID
     * 属性：Types.VARCHAR
     * 字段长度：32
     */
    private String id;

    /**
     * 字段名：user_id
     * 注释：用户ID
     * 属性：Types.VARCHAR
     * 字段长度：32
     */
    private String userId;

    /**
     * 字段名：amount
     * 注释：账单金额
     * 属性：Types.NUMERIC
     * 字段长度：10
     */
    private Double amount;

    /**
     * 字段名：type
     * 注释：账单类型（1：收入，2：支出）
     * 属性：Types.INTEGER
     * 字段长度：1
     */
    private Integer type;

    /**
     * 字段名：category_id
     * 注释：分类ID
     * 属性：Types.VARCHAR
     * 字段长度：32
     */
    private String categoryId;

    /**
     * 字段名：bill_date
     * 注释：账单日期
     * 属性：Types.TIMESTAMP
     * 字段长度：-1
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date billDate;

    /**
     * 字段名：bill_time
     * 注释：账单时间
     * 属性：Types.VARCHAR
     * 字段长度：20
     */
    private String billTime;

    /**
     * 字段名：title
     * 注释：账单标题
     * 属性：Types.VARCHAR
     * 字段长度：100
     */
    private String title;

    /**
     * 字段名：description
     * 注释：账单描述
     * 属性：Types.VARCHAR
     * 字段长度：-1
     */
    private String description;

    /**
     * 字段名：payment_method
     * 注释：支付方式（1：现金，2：银行卡，3：支付宝，4：微信，5：其他）
     * 属性：Types.INTEGER
     * 字段长度：1
     */
    private Integer paymentMethod;

    /**
     * 字段名：status
     * 注释：账单状态（0：草稿，1：已确认）
     * 属性：Types.INTEGER
     * 字段长度：1
     */
    private Integer status;

    /**
     * 字段名：tags
     * 注释：标签（多个标签用逗号分隔）
     * 属性：Types.VARCHAR
     * 字段长度：255
     */
    private String tags;

    /**
     * 字段名：attachments
     * 注释：附件路径（多个附件用逗号分隔）
     * 属性：Types.VARCHAR
     * 字段长度：-1
     */
    private String attachments;

}
